/**
 * Description:
 *
 * @author LiKe
 * @version 1.0.0
 * @date 2022-08-24 10:09
 */
public class CardMain {

    public static void main(String[] args) {
        // 测试所有端口，打开连接
        int init = 0;
        for (int i = 1001; i < 1016; i++) {
            init = CardLibrary.INSTANCE.CVR_InitComm(i);
            if (init == 1) {
                System.out.println("初始化硬件成功");
                break;
            }
        }
        // 验证初始化信息
        if (init != 1) {
            System.out.println("初始化硬件失败");
            return;
        }
        // 卡认证
        int auth = 0;
        while (true) {
            auth = CardLibrary.INSTANCE.CVR_Authenticate();
            if (auth == 1) {
                System.out.println("读卡器和卡片之间的合法身份确认:身份认证成功");
            }

            if (auth != 1) {
                System.out.println("读卡器和卡片之间的合法身份确认:身份认证失败");
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            } else {
                break;
            }
        }
        // 读取卡信息，认证成功后文本信息和照片的默认保存路径
        //C:\Users\用户\AppData\Local\Temp\chinaidcard
        int read = CardLibrary.INSTANCE.CVR_Read_Content(1); //默认路径文件：config.ini fp.dat wz.txt xp.bmp xp.jpg zp.bmp xp.wlt
        // 使用手册上说：执行后会在运行目录下生成以下文件信息。使用这套dll还是会生成到默认路径
        CardLibrary.INSTANCE.CVR_Read_FPContent(); //默认路径文件：config.ini fp.dat wz.txt xp.bmp xp.jpg zp.bmp
        if (read != 1) {
            System.out.println("获取信息失败");
        } else {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("成功获取信息");
            try {
//                System.err.println(Card.GetPeopleName());
//                System.err.println(Card.GetPeopleSex());
//                System.err.println(Card.GetPeopleNation());
//                System.err.println(Card.GetPeopleBirthday());
//                System.err.println(Card.GetPeopleAddress());
//                System.err.println(Card.GetPeopleIDCode());
//                System.err.println(Card.GetDepartment());
//                System.err.println(Card.GetStartDate());
//                System.err.println(Card.GetEndDate());
//                System.err.println(Card.CVR_GetSAMID());
//                System.err.println(Card.C);
//                if (Card.GetBMPData())
//                    System.err.println("bmp图片获取成功");
//                if (Card.GetJpgData())
//                    System.err.println("jpg图片获取成功");
//                if (Card.Getbase64BMPData())
//                    System.err.println("base64图片获取成功");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        int i = CardLibrary.INSTANCE.CVR_CloseComm();
        if (i == 1) {
            System.out.println("关闭连接成功");
        }
    }
}

